<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>LibCDS: /home/zsshen/Desktop/git-hub-code/C-Common-Data-Structures/include/container/trie.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">LibCDS
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('trie_8h.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">trie.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>The string dictionary container.  
<a href="#details">More...</a></p>

<p><a href="trie_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structTrie.html">Trie</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The implementation for trie.  <a href="structTrie.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a41d08ff25b8684c80a0db9fbe9c59db1"><td class="memItemLeft" align="right" valign="top">typedef struct TrieData_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a41d08ff25b8684c80a0db9fbe9c59db1">TrieData</a></td></tr>
<tr class="memdesc:a41d08ff25b8684c80a0db9fbe9c59db1"><td class="mdescLeft">&#160;</td><td class="mdescRight">TrieData is the data type for the container private information.  <a href="#a41d08ff25b8684c80a0db9fbe9c59db1">More...</a><br/></td></tr>
<tr class="separator:a41d08ff25b8684c80a0db9fbe9c59db1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a5af03e18048b7e291ff3b61d5628f001"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a5af03e18048b7e291ff3b61d5628f001">TrieInit</a> (<a class="el" href="structTrie.html">Trie</a> **ppObj)</td></tr>
<tr class="memdesc:a5af03e18048b7e291ff3b61d5628f001"><td class="mdescLeft">&#160;</td><td class="mdescRight">The constructor for <a class="el" href="structTrie.html" title="The implementation for trie. ">Trie</a>.  <a href="#a5af03e18048b7e291ff3b61d5628f001">More...</a><br/></td></tr>
<tr class="separator:a5af03e18048b7e291ff3b61d5628f001"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81c16026137d7b00aa84a14f886237a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a81c16026137d7b00aa84a14f886237a6">TrieDeinit</a> (<a class="el" href="structTrie.html">Trie</a> **ppObj)</td></tr>
<tr class="memdesc:a81c16026137d7b00aa84a14f886237a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">The destructor for <a class="el" href="structTrie.html" title="The implementation for trie. ">Trie</a>.  <a href="#a81c16026137d7b00aa84a14f886237a6">More...</a><br/></td></tr>
<tr class="separator:a81c16026137d7b00aa84a14f886237a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33d0ca1fbd969056383865c17c40f7f4"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a33d0ca1fbd969056383865c17c40f7f4">TrieInsert</a> (<a class="el" href="structTrie.html">Trie</a> *self, char *str)</td></tr>
<tr class="memdesc:a33d0ca1fbd969056383865c17c40f7f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a string into the trie.  <a href="#a33d0ca1fbd969056383865c17c40f7f4">More...</a><br/></td></tr>
<tr class="separator:a33d0ca1fbd969056383865c17c40f7f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bc6e4882757a30c0d9ae53d9cb628b9"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a4bc6e4882757a30c0d9ae53d9cb628b9">TrieBulkInsert</a> (<a class="el" href="structTrie.html">Trie</a> *self, char **aStr, int iNum)</td></tr>
<tr class="memdesc:a4bc6e4882757a30c0d9ae53d9cb628b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert an array of strings into the trie.  <a href="#a4bc6e4882757a30c0d9ae53d9cb628b9">More...</a><br/></td></tr>
<tr class="separator:a4bc6e4882757a30c0d9ae53d9cb628b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c3c148e546431ca7f5b53018c977404"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a5c3c148e546431ca7f5b53018c977404">TrieHasExact</a> (<a class="el" href="structTrie.html">Trie</a> *self, char *str)</td></tr>
<tr class="memdesc:a5c3c148e546431ca7f5b53018c977404"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the trie contains the designated string.  <a href="#a5c3c148e546431ca7f5b53018c977404">More...</a><br/></td></tr>
<tr class="separator:a5c3c148e546431ca7f5b53018c977404"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ed517dcc20397e37ac3a9015b3a635e"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a4ed517dcc20397e37ac3a9015b3a635e">TrieHasPrefixAs</a> (<a class="el" href="structTrie.html">Trie</a> *self, char *str)</td></tr>
<tr class="memdesc:a4ed517dcc20397e37ac3a9015b3a635e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the trie contains the strings matching the designated prefix.  <a href="#a4ed517dcc20397e37ac3a9015b3a635e">More...</a><br/></td></tr>
<tr class="separator:a4ed517dcc20397e37ac3a9015b3a635e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf6ed251ffc63729bea02bd3034e854a"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#acf6ed251ffc63729bea02bd3034e854a">TrieGetPrefixAs</a> (<a class="el" href="structTrie.html">Trie</a> *self, char *str, char ***paStr, int *piNum)</td></tr>
<tr class="memdesc:acf6ed251ffc63729bea02bd3034e854a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the strings from the trie matching the designated prefix.  <a href="#acf6ed251ffc63729bea02bd3034e854a">More...</a><br/></td></tr>
<tr class="separator:acf6ed251ffc63729bea02bd3034e854a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60b05bd3d2eb478a1a27adcfe05aa2fb"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a60b05bd3d2eb478a1a27adcfe05aa2fb">TrieDelete</a> (<a class="el" href="structTrie.html">Trie</a> *self, char *str)</td></tr>
<tr class="memdesc:a60b05bd3d2eb478a1a27adcfe05aa2fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a string from the trie.  <a href="#a60b05bd3d2eb478a1a27adcfe05aa2fb">More...</a><br/></td></tr>
<tr class="separator:a60b05bd3d2eb478a1a27adcfe05aa2fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86c07f00e7061bceade7bfce6528873b"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a86c07f00e7061bceade7bfce6528873b">TrieSize</a> (<a class="el" href="structTrie.html">Trie</a> *self)</td></tr>
<tr class="memdesc:a86c07f00e7061bceade7bfce6528873b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of strings stored in the trie.  <a href="#a86c07f00e7061bceade7bfce6528873b">More...</a><br/></td></tr>
<tr class="separator:a86c07f00e7061bceade7bfce6528873b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The string dictionary container. </p>

<p>Definition in file <a class="el" href="trie_8h_source.html">trie.h</a>.</p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a41d08ff25b8684c80a0db9fbe9c59db1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct TrieData_ <a class="el" href="trie_8h.html#a41d08ff25b8684c80a0db9fbe9c59db1">TrieData</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>TrieData is the data type for the container private information. </p>

<p>Definition at line <a class="el" href="trie_8h_source.html#l00010">10</a> of file <a class="el" href="trie_8h_source.html">trie.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a5af03e18048b7e291ff3b61d5628f001"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t TrieInit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTrie.html">Trie</a> **&#160;</td>
          <td class="paramname"><em>ppObj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The constructor for <a class="el" href="structTrie.html" title="The implementation for trie. ">Trie</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ppObj</td><td>The double pointer to the to be constructed trie</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">SUCC</td><td></td></tr>
    <tr><td class="paramname">ERR_NOMEM</td><td>Insufficient memory for trie construction </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a81c16026137d7b00aa84a14f886237a6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TrieDeinit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTrie.html">Trie</a> **&#160;</td>
          <td class="paramname"><em>ppObj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The destructor for <a class="el" href="structTrie.html" title="The implementation for trie. ">Trie</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ppObj</td><td>The double pointer to the to be destructed trie </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a33d0ca1fbd969056383865c17c40f7f4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t TrieInsert </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTrie.html">Trie</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>str</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Insert a string into the trie. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>The pointer to <a class="el" href="structTrie.html" title="The implementation for trie. ">Trie</a> structure </td></tr>
    <tr><td class="paramname">str</td><td>The designated string</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">SUCC</td><td></td></tr>
    <tr><td class="paramname">ERR_NOINIT</td><td>Uninitialized container </td></tr>
    <tr><td class="paramname">ERR_NOMEM</td><td>Insufficient memory for trie extension </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4bc6e4882757a30c0d9ae53d9cb628b9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t TrieBulkInsert </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTrie.html">Trie</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>aStr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>iNum</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Insert an array of strings into the trie. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>The pointer to <a class="el" href="structTrie.html" title="The implementation for trie. ">Trie</a> structure </td></tr>
    <tr><td class="paramname">aStr</td><td>Array of to be inserted strings </td></tr>
    <tr><td class="paramname">iNum</td><td>The array size</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">SUCC</td><td></td></tr>
    <tr><td class="paramname">ERR_NOINIT</td><td>Uninitialized container </td></tr>
    <tr><td class="paramname">ERR_NOMEM</td><td>Insufficient memory for trie extension </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5c3c148e546431ca7f5b53018c977404"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t TrieHasExact </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTrie.html">Trie</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>str</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if the trie contains the designated string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>The pointer to <a class="el" href="structTrie.html" title="The implementation for trie. ">Trie</a> structure </td></tr>
    <tr><td class="paramname">str</td><td>The designated string</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">SUCC</td><td></td></tr>
    <tr><td class="paramname">NOKEY</td><td></td></tr>
    <tr><td class="paramname">ERR_NOINIT</td><td>Uninitialized container </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4ed517dcc20397e37ac3a9015b3a635e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t TrieHasPrefixAs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTrie.html">Trie</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>str</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if the trie contains the strings matching the designated prefix. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>The pointer to <a class="el" href="structTrie.html" title="The implementation for trie. ">Trie</a> structure </td></tr>
    <tr><td class="paramname">str</td><td>The designated prefix</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">SUCC</td><td></td></tr>
    <tr><td class="paramname">NOKEY</td><td></td></tr>
    <tr><td class="paramname">ERR_NOINIT</td><td>Uninitialized container </td></tr>
    <tr><td class="paramname">ERR_NOMEM</td><td>Insufficient memory to prepare trie traversal </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acf6ed251ffc63729bea02bd3034e854a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t TrieGetPrefixAs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTrie.html">Trie</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char ***&#160;</td>
          <td class="paramname"><em>paStr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>piNum</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve the strings from the trie matching the designated prefix. </p>
<p>To retrieve the strings, you need to pass:</p>
<ul>
<li>The pointer to the string array to store the returned strings.</li>
<li>The pointer to the integer for the returned array size.</li>
</ul>
<p>And this function will allocate the memory to store the returned strings. But if no string can be resolved, the string array will be returned as NULL and the array size will be returned as 0.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>The pointer to <a class="el" href="structTrie.html" title="The implementation for trie. ">Trie</a> structure </td></tr>
    <tr><td class="paramname">str</td><td>The designated prefix </td></tr>
    <tr><td class="paramname">paStr</td><td>The pointer to the returned array of strings </td></tr>
    <tr><td class="paramname">piNum</td><td>The pointer to the returned array size</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">SUCC</td><td></td></tr>
    <tr><td class="paramname">NOKEY</td><td></td></tr>
    <tr><td class="paramname">ERR_NOINIT</td><td>Uninitialized container </td></tr>
    <tr><td class="paramname">ERR_GET</td><td>Invalid parameter to store returned data </td></tr>
    <tr><td class="paramname">ERR_NOMEM</td><td>Insufficient memory to store the resolved strings</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Please remember to free the following resource:<ul>
<li>Each returned string</li>
<li>The array to store returned strings </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="a60b05bd3d2eb478a1a27adcfe05aa2fb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t TrieDelete </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTrie.html">Trie</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>str</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete a string from the trie. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>The pointer to <a class="el" href="structTrie.html" title="The implementation for trie. ">Trie</a> structure </td></tr>
    <tr><td class="paramname">str</td><td>The designated string</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">SUCC</td><td></td></tr>
    <tr><td class="paramname">ERR_NOINIT</td><td>Uninitialized container </td></tr>
    <tr><td class="paramname">ERR_NODATA</td><td>Non-existent string </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a86c07f00e7061bceade7bfce6528873b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t TrieSize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTrie.html">Trie</a> *&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return the number of strings stored in the trie. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>The pointer to <a class="el" href="structTrie.html" title="The implementation for trie. ">Trie</a> structure</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of strings </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">ERR_NOINIT</td><td>Uninitialized container </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_e0f5f6345e438c73b9ae78ec2940718c.html">container</a></li><li class="navelem"><a class="el" href="trie_8h.html">trie.h</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
  </ul>
</div>
</body>
</html>
